\section {Modelo conceptual de datos}

En esta sección desarrollaremos el diseño conceptual de la base de datos mediante un esquema del tipo Entidad Relación. Éste es una descripción concisa de los requerimientos de datos de los usuarios, a través de entidades, atributos, sus interrelaciones, y las restricciones que operan sobre éstos.

\subsection{Asunciones que realizamos}

Listamos las asunciones adicionales que hicimos sobre el dominio del problema:

\begin{itemize}

\item Un país es representado por (a lo sumo) un equipo. Respecto a éstos, asumimos que los contingentes están integrados exclusivamente por miembros del cuerpo técnico o jugadores. Ambas categorías son disjuntas.
\item Ambos grupos tienen igual cantidad de equipos (4 cada uno)
\item Asumimos que concentra un equipo por estadio (a lo sumo)
\end{itemize}

\begin{figure}
  \centering
    \includegraphics[width=1.0\textwidth, height=0.5\textheight]{diagramas/der.jpg}
  \caption{Diagrama de Entidad Relación}
  \label{fig:ejemplo}
\end{figure}

\subsection{Decisiones de diseño}

En primer lugar, a todas las entidades del modelo les agregamos un campo adicional para identificarlas unívocamente (a pesar de la existencia de otras claves candidatas).

Algunos objetos del domino no quedaba claro si debían ser modelados como entidades o como atributos. Por ejemplo, País, Estadio, Hotel, etc. El criterio que utilizamos para hacerlas entidades es que sean referenciadas en más de un lugar. Por ejemplo, Equipo y Árbitro referencian a País, pero Hotel es sólo referenciado desde Equipo. Por ello, País y Estadio son Entidades, y Hotel es un atributo de Equipo.

Al modelar las sanciones, y las estadísticas de los jugadores participantes en un partido, nos surgió la duda en un primer momento de dónde poner ésto. En un principio pensamos en realizar una agregación de Partido y Jugadores, y de esta interrelación desprender tanto sanciones, como las estadísticas de la participación. Éste approach tenía varios inconvenientes, como la necesidad de poner restricciones adicionales al modelo (que los jugadores pertenezcan a los equipos del partido). 

Una mejor solución que se nos ocurrió fue hacer una agregación de Equipo y Partido, e interrelacionarla con una nueva entidad, Participación. La Participación modela la intervención de un jugador en un partido. Una participación se relaciona siempre con Jugador. Opcionalmente, se relaciona con una Estadística, que es otra entidad que modela (para los jugadores destacados) el puntaje realizado, los rebotes, etc. Por último, una Participación puede relacionarse con una Sanción, que es impartida por un árbitro.

\subsection{Restricciones del Modelo}
% en lenguaje natural

\begin{itemize}
\item En la interrelación Juega (Equipo-Partido), la cardinalidad de los equipos es exactamente 2 (y son dos equipos distintos)
\item El atributo duracion de la entidad Partido es menor o igual a 55.
\item La cantidad de objetos de la entidad Equipo es exactamente 8
\item La cantidad de partidos de 'Fase de grupos' es menor o igual a 6.
\item Para un equipo que juega en un partido, la fecha de arribo del equipo debe ser anterior a la fecha del partido.
\item Todo jugador que participe en un encuentro, debe pertenecer a alguno de los dos equipos del encuentro.
\item Para toda participación de un jugador, el equipo de ese jugador es siempre el mismo.
\item Un equipo no puede estar jugando en dos partidos al mismo tiempo
\item Dos encuentros que suceden en el paralelo no pueden ser jugados en el mismo estadio.
\item Un árbitro no puede estar dirigiendo dos partidos simultáneamente
\item Para cada agregación Juega, hay a lo sumo 24 objetos de Participacion interrelacionados a ésta.
\item El árbitro que realiza una sanción en un encuentro, es alguno de los que dirige el partido de dicho encuentro
\item El atributo titularidad en Participación es \textit{Titular} o \textit{Suplente}. 
\item El atributo posicion en Participación es \textit{Base}, \textit{Pivot}, \textit{Ala} o \textit{Punta}.
\item El atributo tipo en Integrante es \textit{CuerpoTecnico} o \textit{Jugador}.
\end{itemize}
